﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using QinTools.Utilities;

namespace QinTools.Model.Characters
{
    public class CharacterWeapon : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        #region Name Notified Property
        private string _Name;
        public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.Name)));
                }
            }
        }
        #endregion
        #region SkillName Notified Property
        private string _SkillName;
        public string SkillName
        {
            get
            {
                return _SkillName;
            }
            set
            {
                _SkillName = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.SkillName)));
                }
            }
        }
        #endregion
        #region Damage Notified Property
        private int _Damage;
        public int Damage
        {
            get
            {
                return _Damage;
            }
            set
            {
                _Damage = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.Damage)));
                }
            }
        }
        #endregion
        #region Resilience Notified Property
        private int _Resilience;
        public int Resilience
        {
            get
            {
                return _Resilience;
            }
            set
            {
                _Resilience = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.Resilience)));
                }
            }
        }
        #endregion
        #region CloseRange Notified Property
        private int _CloseRange;
        public int CloseRange
        {
            get
            {
                return _CloseRange;
            }
            set
            {
                _CloseRange = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.CloseRange)));
                }
            }
        }
        #endregion
        #region MediumRange Notified Property
        private int _MediumRange;
        public int MediumRange
        {
            get
            {
                return _MediumRange;
            }
            set
            {
                _MediumRange = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.MediumRange)));
                }
            }
        }
        #endregion
        #region LongRange Notified Property
        private int _LongRange;
        public int LongRange
        {
            get
            {
                return _LongRange;
            }
            set
            {
                _LongRange = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.LongRange)));
                }
            }
        }
        #endregion
        #region ExtremeRange Notified Property
        private int _ExtremeRange;
        public int ExtremeRange
        {
            get
            {
                return _ExtremeRange;
            }
            set
            {
                _ExtremeRange = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(this.GetSymbolName(p => p.ExtremeRange)));
                }
            }
        }
        #endregion
    }
}
